import pymysql

# 定义 数据库工具类
class DBTools():
    # 创建连接-类方法：可以直接使用类名调用！
    @classmethod
    def __create_conn(cls):
        conn=pymysql.connect(host="127.0.0.1",port=3306,
                             user="root",password="root",
                             database="tpshop2.0",charset="utf8")
        # 不要遗漏
        return conn
    # 查一条记录-封装为类方法，方便调用
    @classmethod
    def query_one(cls,sql):
        my_conn=None
        my_cursor=None
        res=None
        try:
            # 创建连接，借助类名，调用类方法 create_conn
            my_conn=DBTools.__create_conn()
            # 创建游标
            my_cursor=my_conn.cursor()
            # 执行sql语句，做查询
            my_cursor.execute(sql)
            # 提取一条记录
            res=my_cursor.fetchone()
        except Exception as e:
            print("执行查询sql失败:",str(e))
        finally:
            # 关闭游标
            my_cursor.close()
            # 关闭连接
            my_conn.close()
            return res
    # 增删改记录
    @classmethod
    def db_uid(cls,sql):
        my_conn=None
        my_cursor=None
        try:
            # 创建连接，借助类名，调用类方法 create_conn
            my_conn=DBTools.__create_conn()
            # 创建游标
            my_cursor=my_conn.cursor()
            # 执行增删改 sql语句
            my_cursor.execute(sql)
            print("affected_rows():",my_conn.affected_rows())
            # 提交事务
            my_conn.commit()
        except Exception as e:
            print("执行 增删改失败:",str(e))
            # 回滚事务
            my_conn.rollback()
        finally:
            # 关闭游标
            my_cursor.close()
            # 关闭连接
            my_conn.close()

if __name__ == '__main__':
    result=DBTools.query_one("select * from tp_goods;")
    print("查询语句的结果:",result)